   
#ifndef MOD_SOILTEMP_H
#define MOD_SOILTEMP_H


using namespace std;

class Mod_Soiltemp:public Mod_out_handling
{
    protected:      
  
    virtual int compute (time_intervall &ti);
    
    public:
    Mod_Soiltemp(Mod_in *iinp);
    ~Mod_Soiltemp();
     map <string,int> IO_options;    
    
};

class Mod_Soiltemp_epi: public Mod_Soiltemp
{
protected:
    int compute_one_soiltemp_cycle(time_intervall &ti);      
	double mean_T;
	double LAG;
public:

	 Inp_weather *inp_weather;
	 Mod_Crop *mod_crop;
	 Mod_Snow *mod_snow;
	 Mod_Soiltemp_epi(map <string,int> &iIO_options,
                         Mod_in *iinp,
						 Inp_weather *inp_weather,
						 Mod_Crop *mod_crop,
						 Mod_Snow *imod_snow
						 	); 
    int compute(time_intervall &ti);
    int initialize();                    
};
#endif